package thread09;

/**
 * 同步方法解决多线程安全问题:
 *  格式:
 *      修饰符 synchronized 返回值类型 方法名(形参列表){
 *
 *      }
 *   同步方法相当于：
 *   synchronized(this){//this引用指向new Thread()中传入的对象
 *       //对方法中所有代码同步
 *   }
 *
 *   我们一般涉及到操作共享数据的代码时,会单独抽取一个方法,然后在这个方法上加synchronized
 */

public class ThreadDemo01 {
    public static void main(String[] args) {
        Ticket t = new Ticket();

        //启动三个线程模拟三个窗口:A窗口 B窗口 C窗口
        //这三个线程操作共享数据 int ticket = 100
        Thread thread01 = new Thread(t);
        thread01.setName("A窗口");
        thread01.start();

        Thread thread02 = new Thread(t);
        thread02.setName("B窗口");
        thread02.start();

        Thread thread03 = new Thread(t);
        thread03.setName("C窗口");
        thread03.start();
    }
}
